// 题目：https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/
// 题解：https://shentuzhigang.blog.csdn.net/article/details/118469014

package main

import "fmt"

func lengthOfLongestSubstring(s string) int {
	// 哈希集合，记录每个字符是否出现过
	var m [128]int
	n := len(s)
	rk, ans := 0, 0
	for i := 0; i < n; i++ {
		if m[s[i]] > rk {
			if ans < i-rk {
				ans = i - rk
			}
			rk = m[s[i]]
		}
		m[s[i]] = i + 1
	}
	if ans < n-rk {
		return n - rk
	}
	return ans
}

func main() {
	fmt.Println(lengthOfLongestSubstring("bbbbb"))
}
